#include <signal.h>
#include <stdio.h>
#include <unistd.h>

/*
A signal là một sự kiện được sinh ra bởi hệ điều hành Unix , Linux trong trường hợp đáp trả một 
số điều kiện , ngay khi nhận được từ một process có lẽ đang nắm giữ một số hành động 
**/

/*
*Mô tả hoạt động của chương trình :
*Chạy trương trình bấm Ctrl-C trong terminal (tương đương signal ngắt trương trình)
*Chương trình sẽ in ra dòng chữ "OUCH! - I got signal" (do ta thay signal mặc định = hàm do ta viết)
**/
void ouch(int sig){
	printf("OUCH! - I got signal %d\n",sig);
	(void) signal(SIGINT,SIG_DFL);//khôi phục lại hành vi ban đầu của ngắt kết thúc (với SIG_DFL)
}
int main(){
	(void) signal(SIGINT,ouch);//Bắt signal ngắt kết thúc (SIGINT)
	while(1){
		printf("Hello World!\n");
		sleep(1);
	}
}
